The present invention relates to data storage systems, and more particularly, this invention relates to improving the reliability and performance of magnetoresistive random access memory (MRAM).
Using MRAM as an example, the performance characteristics of conventional MRAM-based solid state drives (SSDs) are fundamentally different from those of traditional hard disk drives (HDDs). Data in conventional SSDs is typically organized in pages of 4, 8, or 16 KB sizes. Moreover, page read operations in SSDs are typically one order of magnitude faster than write operations and latency neither depends on the current nor the previous location of operations.
However, in MRAM-based SSDs, memory locations are erased in blocks prior to being written to. The size of an erase block unit is typically 256 pages and the erase operations takes approximately one order of magnitude more time than a page program operation. Due to the intrinsic properties of MRAM, MRAM-based SSDs write data out-of-place whereby a mapping table maps logical addresses of the written data to physical addresses. This mapping table is typically referred to as the Logical-to-Physical Table (LPT).
As MRAM-based memory cells exhibit read errors and/or failures due to wear or other reasons, additional redundancy may be used within memory pages as well as across memory chips (e.g., RAID-5 and RAID-6 like schemes). The additional redundancy within memory pages may include error correction code (ECC) which, for example, may include Bose-Chaudhuri-Hocquenghem (BCH) codes. While the addition of ECC in pages is relatively straightforward, the organization of memory blocks into RAID-like stripes is more complex. For instance, individual blocks are retired over time which requires either reorganization of the stripes, or capacity reduction of the stripe. As the organization of stripes together with the LPT defines the placement of data, SSDs typically utilize a Log-Structured Array (LSA) architecture, which combines these two methods.
Again, the LSA architecture implements on out-of-place writes. Accordingly, a memory page overwrite will result in writing the memory page data to a new location in memory, marking the old copy of the memory page data as invalid, and then updating the mapping information. Due to the limitations of current NAND memory technology, an invalidated data location cannot be reused until the entire block it belongs to has been erased. Before erasing, though, the block undergoes garbage collection, whereby any valid data in the block is relocated to a new block. Garbage collection of a block is typically deferred for as long as possible to maximize the amount of invalidated data in block, and thus reduce the number of valid pages that are relocated, as relocating data causes additional write operations, and thereby increases write amplification.
Moreover, the amount of energy involved with performing a write operation on an MRAM-based SSD is notably higher than the amount of energy involved with performing a read operation on the same MRAM-based SSD. Accordingly, the number of write operations performed by a given storage system implementing MRAM-based SSDs may have a significant effect on the amount of energy consumed by the system. Moreover, the processes involved with writing certain types of data may also have an effect on the amount of energy consumed by the storage system, as well as the reliability (e.g., security) of the data stored therein.